home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / java / text / NumberFormat.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  4.4 KB  |  186 lines

  1. package java.text;
  2.  
  3. import java.text.resources.LocaleData;
  4. import java.util.Locale;
  5. import java.util.ResourceBundle;
  6.  
  7. public abstract class NumberFormat extends Format implements Cloneable {
  8.    public static final int INTEGER_FIELD = 0;
  9.    public static final int FRACTION_FIELD = 1;
  10.    private static final int NUMBERSTYLE = 0;
  11.    private static final int CURRENCYSTYLE = 1;
  12.    private static final int PERCENTSTYLE = 2;
  13.    private boolean groupingUsed = true;
  14.    private byte maxIntegerDigits = 40;
  15.    private byte minIntegerDigits = 1;
  16.    private byte maxFractionDigits = 3;
  17.    private byte minFractionDigits;
  18.    private boolean parseIntegerOnly = false;
  19.  
  20.    public final StringBuffer format(Object var1, StringBuffer var2, FieldPosition var3) {
  21.       if (!(var1 instanceof Double) && !(var1 instanceof Float)) {
  22.          if (var1 instanceof Number) {
  23.             return this.format(((Number)var1).longValue(), var2, var3);
  24.          } else {
  25.             throw new IllegalArgumentException("Cannot format given Object as a Number");
  26.          }
  27.       } else {
  28.          return this.format(((Number)var1).doubleValue(), var2, var3);
  29.       }
  30.    }
  31.  
  32.    public final Object parseObject(String var1, ParsePosition var2) {
  33.       return this.parse(var1, var2);
  34.    }
  35.  
  36.    public final String format(double var1) {
  37.       return this.format(var1, new StringBuffer(), new FieldPosition(0)).toString();
  38.    }
  39.  
  40.    public final String format(long var1) {
  41.       return this.format(var1, new StringBuffer(), new FieldPosition(0)).toString();
  42.    }
  43.  
  44.    public abstract StringBuffer format(double var1, StringBuffer var3, FieldPosition var4);
  45.  
  46.    public abstract StringBuffer format(long var1, StringBuffer var3, FieldPosition var4);
  47.  
  48.    public abstract Number parse(String var1, ParsePosition var2);
  49.  
  50.    public Number parse(String var1) throws ParseException {
  51.       ParsePosition var2 = new ParsePosition(0);
  52.       Number var3 = this.parse(var1, var2);
  53.       if (var2.index == 0) {
  54.          throw new ParseException("Unparseable number: \"" + var1 + "\"", 0);
  55.       } else {
  56.          return var3;
  57.       }
  58.    }
  59.  
  60.    public boolean isParseIntegerOnly() {
  61.       return this.parseIntegerOnly;
  62.    }
  63.  
  64.    public void setParseIntegerOnly(boolean var1) {
  65.       this.parseIntegerOnly = var1;
  66.    }
  67.  
  68.    public static final NumberFormat getInstance() {
  69.       return getInstance(Locale.getDefault(), 0);
  70.    }
  71.  
  72.    public static NumberFormat getInstance(Locale var0) {
  73.       return getInstance(var0, 0);
  74.    }
  75.  
  76.    public static final NumberFormat getNumberInstance() {
  77.       return getInstance(Locale.getDefault(), 0);
  78.    }
  79.  
  80.    public static NumberFormat getNumberInstance(Locale var0) {
  81.       return getInstance(var0, 0);
  82.    }
  83.  
  84.    public static final NumberFormat getCurrencyInstance() {
  85.       return getInstance(Locale.getDefault(), 1);
  86.    }
  87.  
  88.    public static NumberFormat getCurrencyInstance(Locale var0) {
  89.       return getInstance(var0, 1);
  90.    }
  91.  
  92.    public static final NumberFormat getPercentInstance() {
  93.       return getInstance(Locale.getDefault(), 2);
  94.    }
  95.  
  96.    public static NumberFormat getPercentInstance(Locale var0) {
  97.       return getInstance(var0, 2);
  98.    }
  99.  
  100.    public static Locale[] getAvailableLocales() {
  101.       return LocaleData.getAvailableLocales("NumberPatterns");
  102.    }
  103.  
  104.    public int hashCode() {
  105.       return this.maxIntegerDigits * 37 + this.maxFractionDigits;
  106.    }
  107.  
  108.    public boolean equals(Object var1) {
  109.       if (this == var1) {
  110.          return true;
  111.       } else if (this.getClass() != var1.getClass()) {
  112.          return false;
  113.       } else {
  114.          NumberFormat var2 = (NumberFormat)var1;
  115.          return this.maxIntegerDigits == var2.maxIntegerDigits && this.minIntegerDigits == var2.minIntegerDigits && this.maxFractionDigits == var2.maxFractionDigits && this.minFractionDigits == var2.minFractionDigits && this.parseIntegerOnly == var2.parseIntegerOnly;
  116.       }
  117.    }
  118.  
  119.    public Object clone() {
  120.       NumberFormat var1 = (NumberFormat)super.clone();
  121.       return var1;
  122.    }
  123.  
  124.    public boolean isGroupingUsed() {
  125.       return this.groupingUsed;
  126.    }
  127.  
  128.    public void setGroupingUsed(boolean var1) {
  129.       this.groupingUsed = var1;
  130.    }
  131.  
  132.    public int getMaximumIntegerDigits() {
  133.       return this.maxIntegerDigits;
  134.    }
  135.  
  136.    public void setMaximumIntegerDigits(int var1) {
  137.       this.maxIntegerDigits = (byte)Math.max(0, Math.min(var1, 127));
  138.       if (this.minIntegerDigits > this.maxIntegerDigits) {
  139.          this.minIntegerDigits = this.maxIntegerDigits;
  140.       }
  141.  
  142.    }
  143.  
  144.    public int getMinimumIntegerDigits() {
  145.       return this.minIntegerDigits;
  146.    }
  147.  
  148.    public void setMinimumIntegerDigits(int var1) {
  149.       this.minIntegerDigits = (byte)Math.max(0, Math.min(var1, 127));
  150.       if (this.minIntegerDigits > this.maxIntegerDigits) {
  151.          this.maxIntegerDigits = this.minIntegerDigits;
  152.       }
  153.  
  154.    }
  155.  
  156.    public int getMaximumFractionDigits() {
  157.       return this.maxFractionDigits;
  158.    }
  159.  
  160.    public void setMaximumFractionDigits(int var1) {
  161.       this.maxFractionDigits = (byte)Math.max(0, Math.min(var1, 127));
  162.       if (this.maxFractionDigits < this.minFractionDigits) {
  163.          this.minFractionDigits = this.maxFractionDigits;
  164.       }
  165.  
  166.    }
  167.  
  168.    public int getMinimumFractionDigits() {
  169.       return this.minFractionDigits;
  170.    }
  171.  
  172.    public void setMinimumFractionDigits(int var1) {
  173.       this.minFractionDigits = (byte)Math.max(0, Math.min(var1, 127));
  174.       if (this.maxFractionDigits < this.minFractionDigits) {
  175.          this.maxFractionDigits = this.minFractionDigits;
  176.       }
  177.  
  178.    }
  179.  
  180.    private static NumberFormat getInstance(Locale var0, int var1) {
  181.       ResourceBundle var2 = ResourceBundle.getBundle("java.text.resources.LocaleElements", var0);
  182.       String[] var3 = var2.getStringArray("NumberPatterns");
  183.       return new DecimalFormat(var3[var1], new DecimalFormatSymbols(var0));
  184.    }
  185. }
  186.